package com.gt.aep.base.dao.systemManage;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gt.aep.base.entity.systemManage.SysRole;
import com.gt.aep.base.entity.systemManage.SysRoleUser;
import com.gt.aep.base.entity.systemManage.SysUser;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface SysRoleUserDao{
    /**
     * 新增角色-用户关系
     * @param sysRoleUser
     * @return
     */
    int insert(SysRoleUser sysRoleUser);

    /**
     * 修改用户-角色信息
     * @param sysRoleUser
     * @return
     */
    int update(SysRoleUser sysRoleUser);

    /**
     * 批量删除用户-角色
     * @param ids
     * @return
     */
    int delete(String[] ids);

    /**
     * 根据角色ID获取列表
     * @param rid
     * @return
     */
    List<SysUser> getUserListByRid(@Param("rid")String rid);

    /**
     * 根据角色ID获取列表
     * @param rid
     * @return
     */
    int getUserCountByRid(@Param("rid")String rid);

    /**
     * 根据用户id获取相关列表
     * @param uid
     * @return
     */
    List<SysRole> getRoleListByUid(@Param("uid")String uid);

    /**
     * 根据用户id获取相关列表count
     * @param uid
     * @return
     */
    int getRoleCountByUid(@Param("uid")String uid);

    /**
     * 删除所有与 userId 相关的记录
     * @param userId
     * @return
     */
    int deleteByUid(@Param("userId") String userId);

    /**
     * 删除所有与 roleId 相关的记录
     * @param roleId
     * @return
     */
    int deleteByRid(@Param("roleId") String roleId);
}
